package dashoj;

/**
 * @author ZhuYi
 * @create 2025/4/9 10:47
 */
public class 填空_密室 {
    public static void main(String[] args) {
        final long N = 20250324;
        long count = 0;

        // 记录开始时间
        long startTime = System.currentTimeMillis();

        // A的遍历范围：1到N的立方根
        for (long A = 1; A * A * A <= N; A++) {
            // B的遍历范围：A到sqrt(N/A)
            for (long B = A; A * B * B <= N; B++) {
                // C的最小值是B，最大值是N/(A*B)
                long maxC = N / (A * B);
                if (maxC >= B) {
                    count += (maxC - B + 1);
                }
            }
        }

        // 记录结束时间
        long endTime = System.currentTimeMillis();

        System.out.println("满足条件的组合数量: " + count);
        System.out.println("计算耗时: " + (endTime - startTime) + " 毫秒");
    }
}
